package com.six.biz;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.six.vo.Bill;
import com.six.vo.BillDetail;
import com.six.vo.EnumData;
import com.six.vo.Site;
import com.six.vo.Store;
import com.six.vo.Tray;
import com.six.vo.temp.SiteStatusRow;
import com.six.vo.temp.TempBill;
import com.six.vo.temp.TempBillDetail;


/**
 * IQueryInfoBiz 查询类业务接口
 * 
 */
//@Transactional(propagation=Propagation.REQUIRED)
public interface IQueryInfoBiz {
	/**
	 * 查询仓库使用明细情况，查询结果：返回指定仓库内所有仓位状态
	 * 
	 */
	@Transactional(readOnly=true)
	public List<SiteStatusRow> querySitesStatus(String storeId);
	/**
	 * 查询指定条件下的业务单（包括出库和入库）
	 * 
	 */
	@Transactional(readOnly=true)
	public List<Bill> findBillList(String beginDate,String endDate,String customerId);
	/**
	 * 查询指定状态下的业务单 整体情况
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBill> findSettlementBills(String billState);
	/**
	 * 查询指定 id 的托盘信息
	 * 
	 */
	@Transactional(readOnly=true)
	public Tray findTrayById(String trayId);
	/**
	 * 查询指定业务单的所有明细
	 * 
	 */
	@Transactional(readOnly=true)
	public List<BillDetail> findBillDetailListByBillId(String billId);
	/**
	 * 查询所有仓库
	 * 
	 */
	@Transactional(readOnly=true)
	public List<Store> findAllStores();
	/**
	 * 查询指定仓库内所有仓位信息
	 * 
	 */
	@Transactional(readOnly=true)
	public List<Site> findAllSitesByStoreId(String storeId);
	/**
	 * 根据单据状态查询单据
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBill> findBillList(String beginDate,String endDate,String customerId,String
	storeId,String billState,String billType,String detailsIsDel,String billId);
	/**
	 * 根据 id 查询业务单信息
	 * 
	 */
	@Transactional(readOnly=true)
	public Bill findBillById(String billId);
	/**
	 * 业务单明细查询
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBillDetail> findBillDetailList(String beginDate,String endDate,String
	billId,String customerName,String inOrEx,String detailsIsDel,String billState,String
	currentGoodsNum);
	/**
	 * 查询指定条件内的库存货物信息
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBillDetail> findCurrentBillDetailList(String beginDate,String endDate, String
	detailsGoodsName, String custId,String detailsIsDel,String storeId,String siteId);
	/**
	 * 查询指定条件内的库存货物信息，用于过户选货
	 * 
	 */
	@Transactional(readOnly=true)
	public List<TempBillDetail> findCurrentBillDetails(String custId);
	/**
	 * 根据枚举类型 ID 查询枚举类型 系统参数值
	 * 
	 */
	@Transactional(readOnly=true)
	public EnumData findEnumDataById(String id);
	/**
	 * 查询符合条件的所有托盘
	 * 
	 */
	@Transactional(readOnly=true)
	public List<Tray> findTrays(String taryId,String state,Integer isDel);

}
